bridge pattern vs adapter pattern